package com.itheima.edu.info.manger.service;

import com.itheima.edu.info.manger.dao.BaseStudentDao;
import com.itheima.edu.info.manger.dao.OtherStudentDao;
import com.itheima.edu.info.manger.dao.StudentDao;
import com.itheima.edu.info.manger.domain.Student;
import com.itheima.edu.info.manger.factory.StudentDaoFactory;


public class StudentService {
//    private static OtherStudentDao  studentDao=new OtherStudentDao();
    private BaseStudentDao studentDao= StudentDaoFactory.getStudentDao();
    // 判断学号是否存在方法
    public  boolean isExists(String id) {
        Student[] students=studentDao.findAllStudent();
        // 假设id在数组中不存在
        boolean exits=false;
        // 遍历数组, 获取每一个学生对象, 准备进行判断
        for (int i = 0; i < students.length; i++) {
            Student student=students[i];
            if (student!=null&&id.equals(student.getId())){
                return true;
            }
        }
        return false;
    }
    // 查看学生方法
    public  Student[] findAllStudent() {
        // 1. 调用库管对象的findAllStudent获取学生对象数组
        Student[] allStudent=studentDao.findAllStudent();
        // 2. 判断数组中是否有学生信息 (有: 返回地址,  没有: 返回null)
        // 思路: 数组中只要存在一个不是null的元素, 那就代表有学生信息
        boolean flag=false;
        for (int i = 0; i < allStudent.length; i++) {
            Student stu=allStudent[i];
            if (stu!=null){
                flag=true;
                break;
            }
        }
        if (flag){
            // 有信息
            return allStudent;
        }else{
            // 没有信息
            return null;
        }
    }

    public  void deleteStudentById(String did) {
        studentDao.deleteStudentById(did);
    }

    public  void updateStudentById(String uid,Student newStu) {
        studentDao.updateStudentById(uid,newStu);
    }


    // 添加学生方法
    public  boolean addStudent(Student stu) {
        // 2. 将学生对象, 传递给StudentDao 库管中的addStudent方法
        // 3. 将返回的boolean类型结果, 返还给StudentController
        return studentDao.addStudent(stu);
    }
}
